package Offer16;

/**
 * 数值的整数次方
 * 实现 pow(x, n) ，即计算 x 的 n 次幂函数（即，xn）。不得使用库函数，同时不需要考虑大数问题。
 * @author 23737
 * @time 2021.11.01
 */
public class Test {
    public static void main(String[] args) {

    }
}

class Solution {
    public double myPow(double x, int n) {
        if(n == 0) return 1;
        if(n == 1) return x;
        if(n == -1) return 1 / x;
        double half = myPow(x, n / 2);
        double mod = myPow(x, n % 2);
        return half * half * mod;
    }

    /**
     * 这种接法是错误的，乜办法进行判断n是负值的情况
     * @param x
     * @param n
     * @return
     */
    public double myPow2(double x, int n) {
        double result = 1.0f;
        for (int i = 0; i < n; i++) {
            result *= x;
        }
        return result;
    }
}
